// 引入封装好的接口
import {
    userList,
    userCount
} from '../../../request/api'
// 菜单模块
const state = {
    userlist: [], //管理员列表
    total: 0, //总条数
    size: 2, //页面显示的条数
    page: 1 //具体传输那个页面
}
const getters = {
    // 获取管理员列表
    getUser(state) {
        return state.userlist;
    },
    // 获取总条数
    getCount(state) {
        return state.total;
    },
    // 把size传输到组件
    getSize(state) {
        return state.size;
    }
}
const mutations = {
    REQ_USERLIST(state,payload){
        state.userlist = payload
    },
    REQ_COUNT(state,payload){
        state.total = payload
    },
    REQ_PAGE(state,payload){
        state.page = payload
    }


}
const actions = {
    getUserAction(context) {
        console.log(context, '上下文');
        userList({
            size: context.state.size,
            page: context.state.page
        }).then((res) => {
            if (res.data.code == 200) {
                let list = res.data.list ? res.data.list : []
                    /* 
                      由于删除非第一页，只有最后一条数据的时候出现了bug所以我们要用条件判断去控制
                      给page-1
                    */
                  if(context.state.page!=1&&list.length==0){
                    //   去重新修改页码
                    context.dispatch('changePageAction',context.state.page-1)
                  } 
                   // 提交一个mutation
                   context.commit('REQ_USERLIST',list)
            }
        })
    },
    //封装一个获取总条数行动
    getCountAction({commit}){
        userCount().then(res=>{
            if(res.data.code==200){
                commit("REQ_COUNT",res.data.list[0].total)
            }
        })
    },
    //封装一个切换页码的行动
  changePageAction(context,payload){
    console.log(context,'context');
    //修改page 并且要重新调用列表行动
    context.commit('REQ_PAGE',payload)
    context.dispatch('getUserAction')
  }
}

export default{
    state,
    getters,
    mutations,
    actions,
    namespaced: true,
}